home *** CD-ROM | disk | FTP | other *** search
/ Amiga Games Extra 1996 September / Amiga Games Extra CD-ROM 9-1996.iso / userbox / publicdomain / vim-4.2 / src / cmdtab.tab < prev    next >
Text File  |  1996-05-29  |  12KB  |  253 lines

  1. /* vi:ts=4:sw=4
  2.  *
  3.  * VIM - Vi IMproved
  4.  *
  5.  * Code Contributions By:    Bram Moolenaar            mool@plex.nl
  6.  *                            Tim Thompson            twitch!tjt
  7.  *                            Tony Andrews            onecom!wldrdg!tony 
  8.  *                            G. R. (Fred) Walter        watmath!watcgl!grwalter 
  9.  */
  10.  
  11. /*
  12.  * |This file is read by mkcmdtab to produce cmdtab.h.
  13.  *
  14.  * The bars are used to recognize file positions. Do not insert/delete them.|
  15.  */
  16.  
  17. #define RANGE       0x01            /* allow a linespecs */
  18. #define BANG       0x02            /* allow a ! after the command name */
  19. #define EXTRA       0x04            /* allow extra args after command name */
  20. #define XFILE       0x08            /* expand wildcards in extra part */
  21. #define NOSPC       0x10            /* no spaces allowed in the extra part */
  22. #define    DFLALL       0x20            /* default file range is 1,$ */
  23. #define NODFL       0x40            /* do not default to the current file name */
  24. #define NEEDARG       0x80            /* argument required */
  25. #define TRLBAR      0x100            /* check for trailing vertical bar */
  26. #define REGSTR      0x200            /* allow "x for register designation */
  27. #define COUNT      0x400            /* allow count in argument, after command */
  28. #define NOTRLCOM  0x800            /* no trailing comment allowed */
  29. #define ZEROR     0x1000            /* zero line number allowed */
  30. #define USECTRLV 0x2000            /* do not remove CTRL-V from argument */
  31. #define NOTADR     0x4000            /* number before command is not an address */
  32. #define EDITCMD     0x8000            /* has "+command" argument */
  33. #define BUFNAME 0x10000            /* accepts buffer name */
  34. #define FILES    (XFILE + EXTRA)    /* multiple extra files allowed */
  35. #define WORD1    (EXTRA + NOSPC)    /* one extra word allowed */
  36. #define FILE1    (FILES + NOSPC)    /* 1 file allowed, defaults to current file */
  37. #define NAMEDF    (FILE1 + NODFL)    /* 1 file allowed, defaults to "" */
  38. #define NAMEDFS    (FILES + NODFL)    /* multiple files allowed, default is "" */
  39.  
  40. /*
  41.  * This array maps ex command names to command codes. The order in which
  42.  * command names are listed below is significant -- ambiguous abbreviations
  43.  * are always resolved to be the first possible match (e.g. "r" is taken
  44.  * to mean "read", not "rewind", because "read" comes before "rewind").
  45.  * Not supported commands are included to avoid ambiguities.
  46.  */
  47. static struct
  48. {
  49.     char_u    *cmd_name;    /* name of the command */
  50.     long_u     cmd_argt;    /* command line arguments permitted/needed/used */
  51. } cmdnames[] =
  52. {
  53. |    {(char_u *)"append",        BANG+RANGE+TRLBAR},            /* not supported */
  54.     {(char_u *)"all",            RANGE+NOTADR+COUNT+TRLBAR},
  55.     {(char_u *)"abbreviate",    EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  56.     {(char_u *)"abclear",        TRLBAR},
  57.     {(char_u *)"args",            BANG+NAMEDFS+EDITCMD+TRLBAR},
  58.     {(char_u *)"argument",        BANG+RANGE+NOTADR+COUNT+EXTRA+EDITCMD+TRLBAR},
  59.     {(char_u *)"ascii",            TRLBAR},
  60.     {(char_u *)"autocmd",        BANG+EXTRA+NOTRLCOM+USECTRLV},
  61.     {(char_u *)"buffer",        RANGE+NOTADR+BUFNAME+COUNT+EXTRA+TRLBAR},
  62.     {(char_u *)"ball",            RANGE+NOTADR+COUNT+TRLBAR},
  63.     {(char_u *)"buffers",        TRLBAR},
  64.     {(char_u *)"bdelete",        BANG+RANGE+BUFNAME+NOTADR+COUNT+EXTRA+TRLBAR},
  65.     {(char_u *)"bunload",        BANG+RANGE+BUFNAME+NOTADR+COUNT+EXTRA+TRLBAR},
  66.     {(char_u *)"bmodified",        RANGE+NOTADR+COUNT+TRLBAR},
  67.     {(char_u *)"bnext",            RANGE+NOTADR+COUNT+TRLBAR},
  68.     {(char_u *)"bNext",            RANGE+NOTADR+COUNT+TRLBAR},
  69.     {(char_u *)"bprevious",        RANGE+NOTADR+COUNT+TRLBAR},
  70.     {(char_u *)"brewind",        RANGE+TRLBAR},
  71.     {(char_u *)"blast",            RANGE+TRLBAR},
  72.     {(char_u *)"change",        BANG+RANGE+COUNT+TRLBAR},    /* not supported */
  73.     {(char_u *)"cabbrev",        EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  74.     {(char_u *)"cabclear",        TRLBAR},
  75.     {(char_u *)"cc",            RANGE+NOTADR+COUNT+TRLBAR+BANG},
  76.     {(char_u *)"cd",            NAMEDF+TRLBAR},
  77.     {(char_u *)"center",        TRLBAR+RANGE+EXTRA},
  78.     {(char_u *)"cfile",            TRLBAR+FILE1+BANG},
  79.     {(char_u *)"chdir",            NAMEDF+TRLBAR},
  80.     {(char_u *)"checkpath",        TRLBAR+BANG},
  81.     {(char_u *)"clist",            TRLBAR+BANG},
  82.     {(char_u *)"close",            BANG+TRLBAR},
  83.     {(char_u *)"cmap",            EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  84.     {(char_u *)"cmapclear",        TRLBAR},
  85.     {(char_u *)"cmenu",            EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  86.     {(char_u *)"cnext",            RANGE+NOTADR+COUNT+TRLBAR+BANG},
  87.     {(char_u *)"cNext",            RANGE+NOTADR+COUNT+TRLBAR+BANG},
  88.     {(char_u *)"cnoremap",        EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  89.     {(char_u *)"cnoremenu",        EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  90.     {(char_u *)"cnoreabbrev",    EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  91.     {(char_u *)"copy",            RANGE+EXTRA+TRLBAR},
  92.     {(char_u *)"cprevious",        RANGE+NOTADR+COUNT+TRLBAR+BANG},
  93.     {(char_u *)"cquit",            TRLBAR+BANG},
  94.     {(char_u *)"cunmap",        EXTRA+TRLBAR+USECTRLV},
  95.     {(char_u *)"cunmenu",        EXTRA+TRLBAR+USECTRLV},
  96.     {(char_u *)"cunabbrev",        EXTRA+TRLBAR+USECTRLV},
  97.     {(char_u *)"delete",        RANGE+REGSTR+COUNT+TRLBAR},
  98.     {(char_u *)"display",        EXTRA+NOTRLCOM+TRLBAR},
  99.     {(char_u *)"digraphs",        EXTRA+TRLBAR},
  100.     {(char_u *)"djump",            BANG+RANGE+DFLALL+EXTRA},
  101.     {(char_u *)"dlist",            BANG+RANGE+DFLALL+EXTRA},
  102.     {(char_u *)"doautocmd",        EXTRA+TRLBAR},
  103.     {(char_u *)"dsearch",        BANG+RANGE+DFLALL+EXTRA},
  104.     {(char_u *)"dsplit",        BANG+RANGE+DFLALL+EXTRA+TRLBAR},
  105.     {(char_u *)"edit",            BANG+FILE1+EDITCMD+TRLBAR},
  106.     {(char_u *)"ex",            BANG+FILE1+EDITCMD+TRLBAR},
  107.     {(char_u *)"exit",            RANGE+BANG+FILE1+DFLALL+TRLBAR},
  108.     {(char_u *)"file",            BANG+FILE1+TRLBAR},
  109.     {(char_u *)"files",            TRLBAR},
  110.     {(char_u *)"fixdel",        TRLBAR},
  111.     {(char_u *)"global",        RANGE+BANG+EXTRA+DFLALL},
  112.     {(char_u *)"gui",            BANG+NAMEDFS+EDITCMD+TRLBAR},
  113.     {(char_u *)"gvim",            BANG+NAMEDFS+EDITCMD+TRLBAR},
  114.     {(char_u *)"help",            EXTRA+NOTRLCOM},
  115.     {(char_u *)"insert",        BANG+RANGE+TRLBAR},            /* not supported */
  116.     {(char_u *)"iabbrev",        EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  117.     {(char_u *)"iabclear",        TRLBAR},
  118.     {(char_u *)"ijump",            BANG+RANGE+DFLALL+EXTRA},
  119.     {(char_u *)"ilist",            BANG+RANGE+DFLALL+EXTRA},
  120.     {(char_u *)"imap",            EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  121.     {(char_u *)"imapclear",        TRLBAR},
  122.     {(char_u *)"imenu",            EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  123.     {(char_u *)"inoremap",        EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  124.     {(char_u *)"inoremenu",        EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  125.     {(char_u *)"inoreabbrev",    EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  126.     {(char_u *)"isearch",        BANG+RANGE+DFLALL+EXTRA},
  127.     {(char_u *)"isplit",        BANG+RANGE+DFLALL+EXTRA+TRLBAR},
  128.     {(char_u *)"iunmap",        EXTRA+TRLBAR+USECTRLV},
  129.     {(char_u *)"iunmenu",        EXTRA+TRLBAR+USECTRLV},
  130.     {(char_u *)"iunabbrev",        EXTRA+TRLBAR+USECTRLV},
  131.     {(char_u *)"join",            BANG+RANGE+COUNT+TRLBAR},
  132.     {(char_u *)"jumps",            TRLBAR},
  133.     {(char_u *)"k",                RANGE+WORD1+TRLBAR},
  134.     {(char_u *)"list",            RANGE+COUNT+TRLBAR},
  135.     {(char_u *)"last",            EXTRA+BANG+EDITCMD+TRLBAR},
  136.     {(char_u *)"left",            TRLBAR+RANGE+EXTRA},
  137.     {(char_u *)"ls",            TRLBAR},
  138.     {(char_u *)"move",            RANGE+EXTRA+TRLBAR},
  139.     {(char_u *)"mark",            RANGE+WORD1+TRLBAR},
  140.     {(char_u *)"marks",            EXTRA+TRLBAR},
  141.     {(char_u *)"map",            BANG+EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  142.     {(char_u *)"mapclear",        BANG+TRLBAR},
  143.     {(char_u *)"make",            NEEDARG+EXTRA+TRLBAR+XFILE},
  144.     {(char_u *)"menu",            BANG+EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  145.     {(char_u *)"mkexrc",        BANG+FILE1+TRLBAR},
  146.     {(char_u *)"mkvimrc",        BANG+FILE1+TRLBAR},
  147.     {(char_u *)"mfstat",        TRLBAR},                    /* for debugging */
  148.     {(char_u *)"mode",            WORD1+TRLBAR},
  149.     {(char_u *)"next",            RANGE+NOTADR+BANG+NAMEDFS+EDITCMD+TRLBAR},
  150.     {(char_u *)"new",            BANG+FILE1+RANGE+NOTADR+EDITCMD+TRLBAR},
  151.     {(char_u *)"nmap",            EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  152.     {(char_u *)"nmapclear",        TRLBAR},
  153.     {(char_u *)"nmenu",            EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  154.     {(char_u *)"nnoremap",        EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  155.     {(char_u *)"nnoremenu",        EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  156.     {(char_u *)"number",        RANGE+COUNT+TRLBAR},
  157.     {(char_u *)"#",                RANGE+COUNT+TRLBAR},
  158.     {(char_u *)"noremap",        BANG+EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  159.     {(char_u *)"noremenu",        BANG+EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  160.     {(char_u *)"noreabbrev",    EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  161.     {(char_u *)"normal",        BANG+EXTRA+NEEDARG+NOTRLCOM+USECTRLV},
  162.     {(char_u *)"nunmap",        EXTRA+TRLBAR+USECTRLV},
  163.     {(char_u *)"nunmenu",        EXTRA+TRLBAR+USECTRLV},
  164.     {(char_u *)"Next",            EXTRA+RANGE+NOTADR+COUNT+BANG+EDITCMD+TRLBAR},
  165.     {(char_u *)"open",            TRLBAR},                    /* not supported */
  166.     {(char_u *)"only",            BANG+TRLBAR},
  167.     {(char_u *)"print",            RANGE+COUNT+TRLBAR},
  168.     {(char_u *)"pop",            RANGE+NOTADR+COUNT+TRLBAR+ZEROR},
  169.     {(char_u *)"put",            RANGE+BANG+REGSTR+TRLBAR},
  170.     {(char_u *)"preserve",        TRLBAR},
  171.     {(char_u *)"previous",        EXTRA+RANGE+NOTADR+COUNT+BANG+EDITCMD+TRLBAR},
  172.     {(char_u *)"pwd",            TRLBAR},
  173.     {(char_u *)"quit",            BANG+TRLBAR},
  174.     {(char_u *)"qall",            BANG+TRLBAR},
  175.     {(char_u *)"read",            BANG+RANGE+NAMEDF+TRLBAR+ZEROR},
  176.     {(char_u *)"rewind",        EXTRA+BANG+EDITCMD+TRLBAR},
  177.     {(char_u *)"recover",        BANG+FILE1+TRLBAR},
  178.     {(char_u *)"redo",            TRLBAR},
  179.     {(char_u *)"registers",        EXTRA+NOTRLCOM+TRLBAR},
  180.     {(char_u *)"resize",        TRLBAR+WORD1},
  181.     {(char_u *)"retab",            TRLBAR+RANGE+DFLALL+BANG+WORD1},
  182.     {(char_u *)"right",            TRLBAR+RANGE+EXTRA},
  183.     {(char_u *)"rviminfo",        BANG+FILE1+TRLBAR},            /* only when VIMINFO defined */
  184.     {(char_u *)"substitute",    RANGE+EXTRA},
  185.     {(char_u *)"sargument",        BANG+RANGE+NOTADR+COUNT+EXTRA+EDITCMD+TRLBAR},
  186.     {(char_u *)"sall",            RANGE+NOTADR+COUNT+TRLBAR},
  187.     {(char_u *)"sbuffer",        RANGE+NOTADR+BUFNAME+COUNT+EXTRA+TRLBAR},
  188.     {(char_u *)"sball",            RANGE+NOTADR+COUNT+TRLBAR},
  189.     {(char_u *)"sbmodified",    RANGE+NOTADR+COUNT+TRLBAR},
  190.     {(char_u *)"sbnext",        RANGE+NOTADR+COUNT+TRLBAR},
  191.     {(char_u *)"sbNext",        RANGE+NOTADR+COUNT+TRLBAR},
  192.     {(char_u *)"sbprevious",    RANGE+NOTADR+COUNT+TRLBAR},
  193.     {(char_u *)"sbrewind",        TRLBAR},
  194.     {(char_u *)"sblast",        TRLBAR},
  195.     {(char_u *)"suspend",        TRLBAR+BANG},
  196.     {(char_u *)"set",            EXTRA+TRLBAR},
  197.     {(char_u *)"shell",            TRLBAR},
  198.     {(char_u *)"sleep",            RANGE+COUNT+NOTADR+TRLBAR},
  199.     {(char_u *)"source",        BANG+NAMEDF+NEEDARG+TRLBAR},
  200.     {(char_u *)"split",            BANG+FILE1+RANGE+NOTADR+EDITCMD+TRLBAR},
  201.     {(char_u *)"snext",            RANGE+NOTADR+BANG+NAMEDFS+EDITCMD+TRLBAR},
  202.     {(char_u *)"sNext",            EXTRA+RANGE+NOTADR+COUNT+BANG+EDITCMD+TRLBAR},
  203.     {(char_u *)"sprevious",        EXTRA+RANGE+NOTADR+COUNT+BANG+EDITCMD+TRLBAR},
  204.     {(char_u *)"srewind",        EXTRA+BANG+EDITCMD+TRLBAR},
  205.     {(char_u *)"slast",            EXTRA+BANG+EDITCMD+TRLBAR},
  206.     {(char_u *)"stop",            TRLBAR+BANG},
  207.     {(char_u *)"stag",            RANGE+NOTADR+BANG+WORD1+TRLBAR+ZEROR},
  208.     {(char_u *)"sunhide",        RANGE+NOTADR+COUNT+TRLBAR},
  209.     {(char_u *)"sview",            NEEDARG+RANGE+BANG+FILE1+EDITCMD+TRLBAR},
  210.     {(char_u *)"swapname",        TRLBAR},
  211.     {(char_u *)"t",                RANGE+EXTRA+TRLBAR},
  212.     {(char_u *)"tag",            RANGE+NOTADR+BANG+WORD1+TRLBAR+ZEROR},
  213.     {(char_u *)"tags",            TRLBAR},
  214.     {(char_u *)"undo",            TRLBAR},
  215.     {(char_u *)"unabbreviate",    EXTRA+TRLBAR+USECTRLV},
  216.     {(char_u *)"unhide",        RANGE+NOTADR+COUNT+TRLBAR},
  217.     {(char_u *)"unmap",            BANG+EXTRA+TRLBAR+USECTRLV},
  218.     {(char_u *)"unmenu",        BANG+EXTRA+TRLBAR+USECTRLV},
  219.     {(char_u *)"vglobal",        RANGE+EXTRA+DFLALL},
  220.     {(char_u *)"version",        EXTRA+TRLBAR},
  221.     {(char_u *)"visual",        RANGE+BANG+FILE1+EDITCMD+TRLBAR},
  222.     {(char_u *)"view",            RANGE+BANG+FILE1+EDITCMD+TRLBAR},
  223.     {(char_u *)"vmap",            EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  224.     {(char_u *)"vmapclear",        TRLBAR},
  225.     {(char_u *)"vmenu",            EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  226.     {(char_u *)"vnoremap",        EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  227.     {(char_u *)"vnoremenu",        EXTRA+TRLBAR+NOTRLCOM+USECTRLV},
  228.     {(char_u *)"vunmap",        EXTRA+TRLBAR+USECTRLV},
  229.     {(char_u *)"vunmenu",        EXTRA+TRLBAR+USECTRLV},
  230.     {(char_u *)"write",            RANGE+BANG+FILE1+DFLALL+TRLBAR},
  231.     {(char_u *)"wnext",            RANGE+NOTADR+BANG+FILE1+TRLBAR},
  232.     {(char_u *)"wNext",            RANGE+NOTADR+BANG+FILE1+TRLBAR},
  233.     {(char_u *)"wprevious",        RANGE+NOTADR+BANG+FILE1+TRLBAR},
  234.     {(char_u *)"winsize",        EXTRA+NEEDARG+TRLBAR},
  235.     {(char_u *)"wq",            RANGE+BANG+FILE1+DFLALL+TRLBAR},
  236.     {(char_u *)"wall",            BANG+TRLBAR},
  237.     {(char_u *)"wqall",            BANG+FILE1+DFLALL+TRLBAR},
  238.     {(char_u *)"wviminfo",        BANG+FILE1+TRLBAR},            /* only when VIMINFO defined */
  239.     {(char_u *)"xit",            RANGE+BANG+FILE1+DFLALL+TRLBAR},
  240.     {(char_u *)"xall",            BANG+TRLBAR},
  241.     {(char_u *)"yank",            RANGE+REGSTR+COUNT+TRLBAR},
  242.     {(char_u *)"z",                RANGE+COUNT+TRLBAR},        /* not supported */
  243.     {(char_u *)"@",                RANGE+EXTRA+TRLBAR},
  244.     {(char_u *)"!",                RANGE+BANG+NAMEDFS},
  245.     {(char_u *)"<",                RANGE+COUNT+TRLBAR},
  246.     {(char_u *)">",                RANGE+COUNT+TRLBAR},
  247.     {(char_u *)"=",                RANGE+TRLBAR},
  248.     {(char_u *)"&",                RANGE+EXTRA},
  249.     {(char_u *)"~",                RANGE+EXTRA}
  250. |
  251. };
  252. |
  253.